#ifndef _SG_OBJ_H_
#define _SG_OBJ_H_

#include "sg_config.h"
#include "sg_type.h"

typedef struct _sg_obj
{
    sg_coord_t Pos;         // 左上角坐标
    u16 Width;              // 宽度
    u16 Height;             // 高度
    lcd_color_t BgColor;    // 背景色
    sg_st_t Status;         // 状态
}sg_obj_t;

/**
 * 设置位置。注意: 设置后并不会刷新显示, 但是会清除原来的区域。
*/
void SgObj_setPosition(void * obj, u16 x, u16 y);

/**
 * 设置背景色，默认黑色，设置后并不会刷新显示。
*/
void SgObj_setBgColor(void * obj, lcd_color_t bg_color);

/**
 * 设置屏幕上的尺寸，设置后并不会刷新显示。
*/
void SgObj_setSize(void * obj, u16 width, u16 height);

/**
 * 设置对象状态
 * @param st SG_ST_NORMAL:常规显示（不会自动刷新显示）；SG_ST_HIDE：隐藏（立即用背景色填充，清除显示）
*/
void SgObj_setStatus(void * obj, sg_st_t st);


sg_st_t SgObj_getStatus(void * obj);

/**
 * 清除显示。
 * 单纯的清除对象在屏幕上的显示，通常在修改位置前调用清除原来位置的显示。
*/
void SgObj_clear(void * this);


#endif
